package com.xuecheng.api.content;

import com.xuecheng.api.content.model.dto.TeachplanDTO;
import com.xuecheng.api.content.model.dto.TeachplanMediaDTO;
import com.xuecheng.api.content.model.vo.BindTeachplanMediaVO;
import com.xuecheng.api.content.model.vo.TeachplanVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation;

/**
 * <p>
 * 课程计划服务API
 * </p>
 */
@Api("课程计划信息管理")
public interface TeachplanApi {

    @ApiOperation("根据课程Id查询课程计划树形结构（树形结构为三级目录）")
    @ApiImplicitParam(name = "courseId", value = "课程Id值", required = true, dataType = "Long", paramType = "path", example = "1")
    TeachplanDTO queryTreeNodesByCourseId(Long courseBaseId);

    @ApiOperation("新增或修改课程计划")
    TeachplanDTO createOrModifyTeachPlan(TeachplanVO vo);

    @ApiOperation(value = "根据id删除课程计划")
    @ApiImplicitParam(name = "teachPlanId",
            value = "课程计划Id值", required = true,
            dataType = "Long", paramType = "path", example = "1")
    void removeTeachPlan(Long teachPlanId);

    @ApiOperation("课程计划绑定媒资信息")
    TeachplanMediaDTO associateMedia(BindTeachplanMediaVO vo);
}
